import functools


def A(func):
    @functools.wraps(func)   # 使用__name__可以返回原函数名，不使用的话没有
    def inner(*args, **kwargs):
        print('执行装饰器前')
        ss = func(*args, **kwargs)
        print('执行装饰器后')
        return ss

    return inner


@A
def func1(a, b):
    return a + b


s = func1(10, 20)
print(s)
print(func1.__name__)
